package 力扣;

/**
 实现 pow(x, n) ，即计算 x 的 n 次幂函数。
 示例 1:
 输入: 2.00000, 10
 输出: 1024.00000
 示例 2:
 输入: 2.10000, 3
 输出: 9.26100
 示例 3:
 输入: 2.00000, -2
 输出: 0.25000
 解释: 2-2 = 1/22 = 1/4 = 0.25
 */

public class _50Pow_x_n {

    public double myPow(double x, int n) {
        double res = 1.0;
        for(int i = n; i != 0; i /= 2){ //减少一半
            if(i % 2 != 0){ //计数需要多乘以一个x
                res *= x;
                System.out.println("res: "+res);
            }
            //增加 x 的值 自增 平方倍
            x *= x;
            System.out.println("x: "+x);

        }
        return  n < 0 ? 1 / res : res;
    }

    public static void main(String[] args) {

        _50Pow_x_n pow_x_n = new _50Pow_x_n();
        System.out.println(pow_x_n.myPow(2,10));
    }
}
